Merge (SQL)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
La commande Merge en SQL est une instruction qui permet de mettre Γ jour ou insΓ©rer un ou plusieurs tuples dans une table (ou vue) d'une base de donnΓ©es relationnelle Γ partir de donnΓ©es sources, selon des conditions. Cette commande a Γ©tΓ© rajoutΓ©e dans le standard SQL:2003, et Γ©tendue dans le standard SQL:2008, et permet d'Γ©viter des combinaisons dβinstructions Insert, Update et Delete sur la table cible.
Contents
β’ Syntaxe
β’ Liens externes
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Syntaxe
MERGE INTO table_cible T -- table Γ modifier
USING donnΓ©es_source S -- Listes des donnΓ©es sources
ON (Conditions1) -- Condition de correspondance/jointure
WHEN MATCHED THEN -- Si vrai
UPDATE SET t.colonne1 = valeur1 [, t.colonne2 = valeur2 ...] ---- Mise Γ jour
DELETE WHERE (Conditions2) ---- ou Suppression sous condition
WHEN NOT MATCHED THEN -- Si faux
INSERT [ ( liste_colonnes) ] { VALUES ( liste_valeurs) | DEFAULT VALUES } ---- Ajout
Une jointure droite externe (Right outer join) est effectuΓ©e entre la cible et la source. Si plusieurs tuples de la source correspondent Γ un mΓͺme tuple de la cible alors une erreur est levΓ©e. Dans la syntaxe, Conditions1 reprΓ©sente la condition de jointure qui permet de dΓ©finir si un tuple cible doit Γͺtre ajoutΓ© ou mise Γ jour (ou supprimΓ©e si on est dans le cas de la Conditions2). Cela signifie que si un tuple source correspond selon la condition de jointure Γ un tuple de la table cible alors les instructions dans WHEN MATCHED THEN sont effectuΓ©es. Si un tuple source ne correspond pas Γ la condition de jointure alors les instructions dans WHEN NOT MATCHED THEN sont effectuΓ©es.
Les donnΓ©es sources peuvent provenir d'une table, d'une vue ou d'une sous requΓͺte.
Notes et rΓ©fΓ©rences
β’ (en) Cet article est partiellement ou en totalitΓ© issu de lβarticle de WikipΓ©dia en anglais intitulΓ© Β« Merge (SQL) Β» (voir la liste des auteurs).
Liens externes
β’ Documentation du Merge pour DB2 z/OS
β’ Documentation du Merge d'Oracle 11g R2
β’ Documentation du Merge dans SQL Server 2012
β’ Portail des bases de donnΓ©es